<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<script>
    /*
    * this指向的修改：
    *   通常情况下 this指向了调用函数的主体对象 但是我们可以手动修改this的指向
    *   函数执行的时候 可以主动将函数的this绑定到另一个对象上 函数任何时候执行 this指向都是那个另一个对象
    *       bind：绑定调用主体，返回一个函数，返回的这个函数this指向会绑定到那个对象上
    *
    *
    *
    * */

    let person = {
        name:"银时",
        say:function (){
            console.log(this.name)
        }
    }
    let p = person.say.bind(person)
    p()

    //用$来存储document.querySelector
    let $ = document.querySelector.bind(document)
    let box = $(".box")
    console.log(box)

    //将下列的this指向改变
    let o ={
        fn:function (){
            console.log(this) //win
            function  f(){
                console.log(this) //obj
            }
            f.bind(o)() //bind会返回一个函数 需要加()才能执行
        }
    }
    o.fn.bind(window)() //bind会返回一个函数 需要加()才能执行





</script>
</body>
</html>